<?xml version='1.0' encoding='UTF-8'?>
<parameters>
  <version>3</version>
  <group name="UAVCAN Motor Parameters" no_code_generation="true">
    <parameter default="75" name="ctl_bw" type="INT32">
      <short_desc>Speed controller bandwidth</short_desc>
      <long_desc>Speed controller bandwidth, in Hz. Higher values result in faster speed and current rise times, but may result in overshoot and higher current consumption. For fixed-wing aircraft, this value should be less than 50 Hz; for multirotors, values up to 100 Hz may provide improvements in responsiveness.</long_desc>
      <unit>Hz</unit>
      <min>10</min>
      <max>250</max>
    </parameter>
    <parameter default="1" name="ctl_dir" type="INT32">
      <short_desc>Reverse direction</short_desc>
      <long_desc>Motor spin direction as detected during initial enumeration. Use 0 or 1 to reverse direction.</long_desc>
      <min>0</min>
      <max>1</max>
    </parameter>
    <parameter default="1" name="ctl_gain" type="FLOAT">
      <short_desc>Speed (RPM) controller gain</short_desc>
      <long_desc>Speed (RPM) controller gain. Determines controller
            aggressiveness; units are amp-seconds per radian. Systems with
            higher rotational inertia (large props) will need gain increased;
            systems with low rotational inertia (small props) may need gain
            decreased. Higher values result in faster response, but may result
            in oscillation and excessive overshoot. Lower values result in a
            slower, smoother response.</long_desc>
      <unit>C/rad</unit>
      <decimal>3</decimal>
      <min>0.00</min>
      <max>1.00</max>
    </parameter>
    <parameter default="3.5" name="ctl_hz_idle" type="FLOAT">
      <short_desc>Idle speed (e Hz)</short_desc>
      <long_desc>Idle speed (e Hz)</long_desc>
      <unit>Hz</unit>
      <decimal>3</decimal>
      <min>0.0</min>
      <max>100.0</max>
    </parameter>
    <parameter default="25" name="ctl_start_rate" type="INT32">
      <short_desc>Spin-up rate (e Hz/s)</short_desc>
      <long_desc>Spin-up rate (e Hz/s)</long_desc>
      <unit>1/s^2</unit>
      <min>5</min>
      <max>1000</max>
    </parameter>
    <parameter default="0" name="esc_index" type="INT32">
      <short_desc>Index of this ESC in throttle command messages.</short_desc>
      <long_desc>Index of this ESC in throttle command messages.</long_desc>
      <min>0</min>
      <max>15</max>
    </parameter>
    <parameter default="20034" name="id_ext_status" type="INT32">
      <short_desc>Extended status ID</short_desc>
      <long_desc>Extended status ID</long_desc>
      <min>1</min>
      <max>1000000</max>
    </parameter>
    <parameter default="50000" name="int_ext_status" type="INT32">
      <short_desc>Extended status interval (µs)</short_desc>
      <long_desc>Extended status interval (µs)</long_desc>
      <unit>us</unit>
      <min>0</min>
      <max>1000000</max>
    </parameter>
    <parameter default="50000" name="int_status" type="INT32">
      <short_desc>ESC status interval (µs)</short_desc>
      <long_desc>ESC status interval (µs)</long_desc>
      <unit>us</unit>
      <max>1000000</max>
    </parameter>
    <parameter default="12" name="mot_i_max" type="FLOAT">
      <short_desc>Motor current limit in amps</short_desc>
      <long_desc>Motor current limit in amps. This determines the maximum
            current controller setpoint, as well as the maximum allowable
            current setpoint slew rate. This value should generally be set to
            the continuous current rating listed in the motor’s specification
            sheet, or set equal to the motor’s specified continuous power
            divided by the motor voltage limit.</long_desc>
      <unit>A</unit>
      <decimal>3</decimal>
      <min>1</min>
      <max>80</max>
    </parameter>
    <parameter default="2300" name="mot_kv" type="INT32">
      <short_desc>Motor Kv in RPM per volt</short_desc>
      <long_desc>Motor Kv in RPM per volt. This can be taken from the motor’s
            specification sheet; accuracy will help control performance but
            some deviation from the specified value is acceptable.</long_desc>
      <unit>rpm/V</unit>
      <min>0</min>
      <max>4000</max>
    </parameter>
    <parameter default="0.0" name="mot_ls" type="FLOAT">
      <short_desc>READ ONLY: Motor inductance in henries.</short_desc>
      <long_desc>READ ONLY: Motor inductance in henries. This is measured on start-up.</long_desc>
      <unit>H</unit>
      <decimal>3</decimal>
    </parameter>
    <parameter default="14" name="mot_num_poles" type="INT32">
      <short_desc>Number of motor poles.</short_desc>
      <long_desc>Number of motor poles. Used to convert mechanical speeds to
            electrical speeds. This number should be taken from the motor’s
            specification sheet.</long_desc>
      <min>2</min>
      <max>40</max>
    </parameter>
    <parameter default="0.0" name="mot_rs" type="FLOAT">
      <short_desc>READ ONLY: Motor resistance in ohms</short_desc>
      <long_desc>READ ONLY: Motor resistance in ohms. This is measured on start-up. When
            tuning a new motor, check that this value is approximately equal
            to the value shown in the motor’s specification sheet.</long_desc>
      <unit>Ohm</unit>
      <decimal>3</decimal>
    </parameter>
    <parameter default="0.5" name="mot_v_accel" type="FLOAT">
      <short_desc>Acceleration limit (V)</short_desc>
      <long_desc>Acceleration limit (V)</long_desc>
      <unit>V</unit>
      <decimal>3</decimal>
      <min>0.01</min>
      <max>1.00</max>
    </parameter>
    <parameter default="14.8" name="mot_v_max" type="FLOAT">
      <short_desc>Motor voltage limit in volts</short_desc>
      <long_desc>Motor voltage limit in volts. The current controller’s
            commanded voltage will never exceed this value. Note that this may
            safely be above the nominal voltage of the motor; to determine the
            actual motor voltage limit, divide the motor’s rated power by the
            motor current limit.</long_desc>
      <unit>V</unit>
      <decimal>3</decimal>
      <min>0</min>
    </parameter>
  </group>
  <group name="UAVCAN GNSS" no_code_generation="true">
    <parameter name="gnss.warn_dimens" default="0" type="INT32">
      <short_desc>device health warning</short_desc>
      <long_desc>Set the device health to Warning if the dimensionality of
              the GNSS solution is less than this value. 3 for the full (3D)
              solution, 2 for planar (2D) solution, 1 for time-only solution,
              0 disables the feature.
      </long_desc>
      <min>0</min>
      <max>3</max>
      <values>
        <value code="0">disables the feature</value>
        <value code="1">time-only solution</value>
        <value code="2">planar (2D) solution</value>
        <value code="3">full (3D) solution</value>
      </values>
    </parameter>
    <parameter name="gnss.warn_sats" default="0" type="INT32">
      <short_desc></short_desc>
      <long_desc>Set the device health to Warning if the number of satellites
        used in the GNSS solution is below this threshold. Zero
        disables the feature
      </long_desc>
    </parameter>
    <parameter name="gnss.dyn_model" default="2" type="INT32">
      <short_desc>GNSS dynamic model</short_desc>
      <long_desc>Dynamic model used in the GNSS positioning engine. 0 –
        Automotive, 1 – Sea, 2 – Airborne.
      </long_desc>
      <min>0</min>
      <max>2</max>
      <values>
        <value code="0">Automotive</value>
        <value code="1">Sea</value>
        <value code="2">Airborne</value>
      </values>
    </parameter>
    <parameter name="gnss.old_fix_msg" default="1" type="INT32">
      <short_desc>Broadcast old GNSS fix message</short_desc>
      <long_desc>Broadcast the old (deprecated) GNSS fix message
        uavcan.equipment.gnss.Fix alongside the new alternative
        uavcan.equipment.gnss.Fix2. It is recommended to
        disable this feature to reduce the CAN bus traffic.
      </long_desc>
      <min>0</min>
      <max>1</max>
      <values>
        <value code="0">Fix2</value>
        <value code="1">Fix and Fix2</value>
      </values>
    </parameter>
    <parameter name="uavcan.pubp-pres" default="0" type="INT32">
      <short_desc></short_desc>
      <long_desc>Set the device health to Warning if the number of satellites
        used in the GNSS solution is below this threshold. Zero
        disables the feature
      </long_desc>
      <unit>us</unit>
      <min>0</min>
      <max>1000000</max>
    </parameter>
  </group>
</parameters>
